POV-Ray : Newsgroups : povray.binaries.images : Patches for arbitrary topology shapes - 4 attachments : Re: Patches for arbitrary topology shapes - 4 attachments - 1 attachment Server Time
14 Nov 2024 16:26:22 EST (-0500)
  Re: Patches for arbitrary topology shapes - 4 attachments - 1 attachment  
From: Tor Olav Kristensen
Date: 4 Jan 2004 01:19:43
Message: <3ff7b07f@news.povray.org>
And here is a shape where six bicubic patches
meet at one of the control points.

Below is some code that show how the shape was
defined and how macros was called in order to
have the shape drawn.


Tor Olav


#declare A = 0.3;

#declare I = 1.0;
#declare J = 1.0;
#declare K = 1.0;

#declare P = 2.0;
#declare Q = 2.0;
#declare R = 2.0;

#declare Points =
  array[37] {
    < 0,  0,  0>, // 00
    < A, -J, -A>, // 01
    < I, -A,  A>, // 02
    < A,  A,  K>, // 03
    <-A,  J,  A>, // 04
    <-I,  A, -A>, // 05
    <-A, -A, -K>, // 06
    < I, -J,  0>, // 07
    < I,  0,  K>, // 08
    < 0,  J,  K>, // 09
    <-I,  J,  0>, // 10
    <-I,  0 ,-K>, // 11
    < 0, -J, -K>, // 12
    < A, -Q, -A>, // 13
    < P, -A,  A>, // 14
    < A,  A,  R>, // 15
    <-A,  Q,  A>, // 16
    <-P,  A, -A>, // 17
    <-A, -A, -R>, // 18
    < I, -Q,  0>, // 19
    < P, -J,  0>, // 20
    < P,  0,  K>, // 21
    < I,  0,  R>, // 22
    < 0,  J,  R>, // 23
    < 0,  Q,  K>, // 24
    <-I,  Q,  0>, // 25
    <-P,  J,  0>, // 26
    <-P,  0, -K>, // 27
    <-I,  0, -R>, // 28
    < 0, -J, -R>, // 29
    < 0, -Q, -K>, // 30
    < P, -Q,  0>, // 31
    < P,  0,  R>, // 32
    < 0,  Q,  R>, // 33
    <-P,  Q,  0>, // 34
    <-P,  0, -R>, // 35
    < 0, -Q, -R>  // 36
  }

#declare Patches =
  array[24] {
    array [4] {  0,  1,  7,  2 }, // 00
    array [4] {  0,  2,  8,  3 }, // 01
    array [4] {  0,  3,  9,  4 }, // 02
    array [4] {  0,  4, 10,  5 }, // 03
    array [4] {  0,  5, 11,  6 }, // 04
    array [4] {  0,  6, 12,  1 }, // 05
    array [4] {  1, 13, 19,  7 }, // 06
    array [4] {  2,  7, 20, 14 }, // 07
    array [4] {  2, 14, 21,  8 }, // 08
    array [4] {  3,  8, 22, 15 }, // 09
    array [4] {  3, 15, 23,  9 }, // 10
    array [4] {  4,  9, 24, 16 }, // 11
    array [4] {  4, 16, 25, 10 }, // 12
    array [4] {  5, 10, 26, 17 }, // 13
    array [4] {  5, 17, 27, 11 }, // 14
    array [4] {  6, 11, 28, 18 }, // 15
    array [4] {  6, 18, 29, 12 }, // 16
    array [4] {  1, 12, 30, 13 }, // 17
    array [4] {  7, 19, 31, 20 }, // 18
    array [4] {  8, 21, 32, 22 }, // 19
    array [4] {  9, 23, 33, 24 }, // 20
    array [4] { 10, 25, 34, 26 }, // 21
    array [4] { 11, 27, 35, 28 }, // 22 
    array [4] { 12, 29, 36, 30 }, // 23
  }


union {
  DrawAllPatches(
    Points,
    Patches,
    PointNormals(Points, Patches)
  )
  texture { ... }
}


Post a reply to this message


Attachments:
Download 'SixPatches.jpg' (31 KB)

Preview of image 'SixPatches.jpg'
SixPatches.jpg


 

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.